/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


/**
 *
 * @author diego
 */
public class Sala {
    
    private Integer id;
    private Set<Seccion> secciones; 
    private String nombre;
    private boolean estado;
    private Integer capacidad;
    //private Set<Funcion> funciones;
    //private Map<String,Ticket> entradasVendidas;    
    //private Integer nroEntrada;
    

    public Sala() {
    }

    public Sala(String nombre,Integer capacidad) {
        this.nombre = nombre;
        this.estado = true;
        this.secciones = new HashSet();
        this.capacidad = capacidad;
        
        Complejo.persistencia.insert(this);
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Set<Seccion> getSecciones() {
        return secciones;
    }

    public void setSecciones(Set<Seccion> secciones) {
        this.secciones = secciones;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public boolean isEstado() {
        return estado;
    }
    
    public boolean getEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public Integer getCapacidad() {
        return capacidad;
    }

    public void setCapacidad(Integer capacidad) {
        this.capacidad = capacidad;
    }
    
    
   
     
    public Map<String,Butaca> obtenerButacas(Funcion unaFuncion){
        Map<String,Butaca> butacas = new HashMap();
        Seccion UnaSeccion;
        
        Iterator it = this.secciones.iterator();
        
        while(it.hasNext()){
            UnaSeccion = (Seccion) it.next();
            butacas.putAll(UnaSeccion.obtenerButacas());
        }
        
        return null;
    }
    
    public void agregarSeccion(String unCodigo){
        Seccion unaSeccion = new Seccion(unCodigo,this);
        this.secciones.add(unaSeccion);
        Complejo.persistencia.update(this);
    }
    
    
    /*
    public void quitarSecciones(){
        Iterator it = this.secciones.entrySet().iterator();
        Seccion unaSeccion;
        while(it.hasNext()){
            unaSeccion = (Seccion) it.next();
            unaSeccion.quitarfilas();
           // this.secciones.remove(unaSeccion);
            unaSeccion.deshabilitar();
        }
        
        
    }
    */
    
    public  Set<Seccion> ObtenerSecciones(){
        Iterator it = this.getSecciones().iterator();
        Set<Seccion> salida = new HashSet();
        while(it.hasNext()){
            Seccion unaSeccion = (Seccion) it.next();
            if(unaSeccion.isEstado()){
                salida.add(unaSeccion);
            }
        }
        return salida; //ver esto
    }
    
    public void habilitar(){
        this.setEstado(true);
        
    }
    public void deshabilitar(){
        this.setEstado(false);
    }
    
    @Override
    public String toString(){
        return this.getNombre();
    }
    
    
    public void actualizar(String unNombre){
        this.setNombre(unNombre);
    }
    
}
